﻿//#define _CRT_SECURE_NO_WARNINGS 1
//#include <iostream>
//#include <string>
//using namespace std;
//
////int main()
////{
////	string str("Hello Bit.");
////
////	str.reserve(111);
////
////	str.resize(5);
////
////	str.reserve(50);
////
////	cout << str.size() << ":" << str.capacity() << endl;
////
////	return 0;
////
////}
//
////int main(int argc, char* argv[])
////{
////	string strText = "How are you?";
////
////	string strSeparator = " ";
////
////	string strResult;
////
////	int size_pos = 0;
////
////	int size_prev_pos = 0;
////
////	while ((size_pos = strText.find_first_of(strSeparator, size_pos)) != string::npos)
////
////	{
////
////		strResult = strText.substr(size_prev_pos, size_pos - size_prev_pos);
////
////		cout << strResult << " ";
////
////		size_prev_pos = ++size_pos;
////
////	}
////
////	if (size_prev_pos != strText.size())
////
////	{
////
////		strResult = strText.substr(size_prev_pos, size_pos - size_prev_pos);
////
////		cout << strResult << " ";
////
////	}
////
////	cout << endl;
////
////	return 0;
////}
//
//class Solution {
//public:
//    string addStrings(string num1, string num2) {
//        int end1 = num1.size() - 1, end2 = num2.size() - 1;
//        int next = 0;
//        string result;
//        while (end1 >= 0 || end2 >= 0)
//        {
//            int val1 = 0, val2 = 0;
//            int ret = 0;
//            if (end1 >= 0)
//            {
//                val1 = num1[end1--] - '0';
//
//
//            }
//            if (end2 >= 0)
//            {
//                val2 = num2[end2--] - '0';
//            }
//            ret = val1 + val2 + next;
//            next = ret / 10;
//            ret %= 10;
//            result += ret + '0';
//        }
//        if (next == 1)
//        {
//            result += '1';
//        }
//        reverse(result.begin(), result.end());
//        return result;
//    }
//};
//
//class Solution {
//public:
//    bool isLeterOrNumber(char ch)
//    {
//        return ((ch >= 'a' && ch <= 'z') || (ch >= '0' && ch <= '9') || (ch >= 'A' && ch <= 'Z'));
//    }
//    bool isPalindrome(string s) {
//        for (auto& ch : s)
//        {
//            if (ch >= 'a' && ch <= 'z')
//            {
//                ch -= 32;
//            }
//        }
//
//
//        int begin = 0, end = s.size() - 1;
//        while (begin < end)
//        {
//            while (begin < end && !isLeterOrNumber(s[begin]))
//                begin++;
//
//            while (begin < end && !isLeterOrNumber(s[end]))
//                end--;
//            if (s[begin++] != s[end--])
//                return false;
//        }
//        return true;
//    }
//};
//
//class Solution {
//public:
//    string reverseStr(string s, int k) {
//        int n = s.length();
//        for (int i = 0; i < n; i += 2 * k)
//        {
//            reverse(s.begin() + i, s.begin() + min(i + k, n));//避免越界
//        }
//        return s;
//    }
//};
//
//class Solution {
//public:
//    string reverseWords(string s) {
//        int head = 0, end = 0;
//        for (int i = 0; i < s.size(); i++)
//        {
//            end = s.find(' ', end);
//            if (end == string::npos)
//            {
//                end = s.size();
//            }
//            reverse(s.begin() + head, s.begin() + end);
//            end++;
//            head = end;
//        }
//
//
//        return s;
//    }
//};